home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / modula2f.zip / DOSCLOCK.MOD < prev    next >
Text File  |  1992-06-20  |  2KB  |  81 lines

  1. IMPLEMENTATION MODULE DOSclock;
  2.  
  3. FROM SYSTEM IMPORT ASSEMBLER;
  4. FROM Strings IMPORT Assign;
  5. FROM Text IMPORT WriteCard;
  6.  
  7. PROCEDURE GetDate(VAR day:ARRAY OF CHAR; VAR month, date, year:CARDINAL);
  8. VAR num:CARDINAL;
  9.     temp:ARRAY[0..8] OF CHAR;
  10. BEGIN
  11.     num := 0;
  12.     month := 0;
  13.     date := 0;
  14.     year := 0;
  15.     ASM
  16.         MOV AH,42
  17.         INT 21H
  18.         LES DI,month
  19.         MOV ES:[DI],DH
  20.         LES DI,date
  21.         MOV ES:[DI],DL
  22.         LES DI,year
  23.         MOV ES:[DI],CX
  24.         MOV num,AL
  25.     END;
  26.     CASE num OF
  27.         0: temp := 'Sunday'|
  28.         1: temp := 'Monday'|
  29.         2: temp := 'Tuesday'|
  30.         3: temp := 'Wednesday'|
  31.         4: temp := 'Thursday'|
  32.         5: temp := 'Friday'|
  33.         6: temp := 'Saturday';
  34.     END;
  35.     Assign(temp,day);
  36. END GetDate;
  37.  
  38. PROCEDURE SetDate(month, date, year:CARDINAL);
  39. BEGIN
  40.     ASM
  41.         MOV DH,month
  42.         MOV DL,date
  43.         MOV CX,year
  44.         MOV AH,43
  45.         INT 21H
  46.     END;
  47. END SetDate;
  48.  
  49. PROCEDURE GetTime(VAR hour, min, sec:CARDINAL);
  50. VAR num:CARDINAL;
  51.     temp:ARRAY [0..8] OF CHAR;
  52. BEGIN
  53.     hour := 0;
  54.     min := 0;
  55.     sec := 0;
  56.     ASM
  57.         MOV AH,44
  58.         INT 21H
  59.         LES DI,hour
  60.         MOV ES:[DI],CH
  61.         LES DI,min
  62.         MOV ES:[DI],CL
  63.         LES DI,sec
  64.         MOV ES:[DI],DH
  65.     END;
  66. END GetTime;
  67.  
  68. PROCEDURE SetTime(hour, min, sec:CARDINAL);
  69. BEGIN
  70.     ASM
  71.         MOV CH,hour
  72.         MOV CL,min
  73.         MOV DH,sec
  74.         MOV DL,0
  75.         MOV AH,45
  76.         INT 21H
  77.     END;
  78. END SetTime;
  79.  
  80. END DOSclock.
  81.